#include "dll/client_known_interfaces.h"

/*
the client function Steam_IsKnownInterface() accesses a structure which has this layout:

typedef struct struct_known_interfaces {
  void *unknown_function_ptr;
  const char *name;    // ex: "STEAMAPPLIST_INTERFACE_VERSION001"
  const char *family;  // ex: "AppList"
  struct_known_interfaces *previous_node;
};

this is a dump of the `name` field when running this function from a debugger
*/

extern const std::unordered_set<std::string> client_known_interfaces = {
  "SteamAppDisableUpdate001",
  "STEAMAPPLIST_INTERFACE_VERSION001",
  "SteamApps001",
  "STEAMAPPS_INTERFACE_VERSION001",
  "STEAMAPPS_INTERFACE_VERSION002",
  "STEAMAPPS_INTERFACE_VERSION003",
  "STEAMAPPS_INTERFACE_VERSION004",
  "STEAMAPPS_INTERFACE_VERSION005",
  "STEAMAPPS_INTERFACE_VERSION006",
  "STEAMAPPS_INTERFACE_VERSION007",
  "STEAMAPPS_INTERFACE_VERSION008",
  "STEAMAPPTICKET_INTERFACE_VERSION001",
  "SteamBilling002",
  "STEAMCHAT_INTERFACE_VERSION003",
  "SteamController003",
  "SteamController004",
  "SteamController005",
  "SteamController006",
  "SteamController007",
  "SteamController008",
  "STEAMCONTROLLER_INTERFACE_VERSION",
  "SteamFriends001",
  "SteamFriends002",
  "SteamFriends003",
  "SteamFriends004",
  "SteamFriends005",
  "SteamFriends006",
  "SteamFriends007",
  "SteamFriends008",
  "SteamFriends009",
  "SteamFriends010",
  "SteamFriends011",
  "SteamFriends012",
  "SteamFriends013",
  "SteamFriends014",
  "SteamFriends015",
  "SteamFriends016",
  "SteamFriends017",
  "SteamGameCoordinator001",
  "SteamGameServer002",
  "SteamGameServer003",
  "SteamGameServer004",
  "SteamGameServer005",
  "SteamGameServer006",
  "SteamGameServer007",
  "SteamGameServer008",
  "SteamGameServer009",
  "SteamGameServer010",
  "SteamGameServer011",
  "SteamGameServer012",
  "SteamGameServer013",
  "SteamGameServer014",
  "SteamGameServer015",
  "SteamGameServerStats001",
  "SteamGameStats001",
  "STEAMHTMLSURFACE_INTERFACE_VERSION_001",
  "STEAMHTMLSURFACE_INTERFACE_VERSION_002",
  "STEAMHTMLSURFACE_INTERFACE_VERSION_003",
  "STEAMHTMLSURFACE_INTERFACE_VERSION_004",
  "STEAMHTMLSURFACE_INTERFACE_VERSION_005",
  "STEAMHTTP_INTERFACE_VERSION001",
  "STEAMHTTP_INTERFACE_VERSION002",
  "STEAMHTTP_INTERFACE_VERSION003",
  "SteamInput001",
  "SteamInput002",
  "SteamInput003",
  "SteamInput004",
  "SteamInput005",
  "SteamInput006",
  "STEAMINVENTORY_INTERFACE_V001",
  "STEAMINVENTORY_INTERFACE_V002",
  "STEAMINVENTORY_INTERFACE_V003",
  "SteamMasterServerUpdater001",
  "SteamMatchGameSearch001",
  "SteamMatchMaking001",
  "SteamMatchMaking002",
  "SteamMatchMaking003",
  "SteamMatchMaking004",
  "SteamMatchMaking005",
  "SteamMatchMaking006",
  "SteamMatchMaking007",
  "SteamMatchMaking008",
  "SteamMatchMaking009",
  "SteamMatchMakingServers001",
  "SteamMatchMakingServers002",
  "STEAMMUSIC_INTERFACE_VERSION001",
  "STEAMMUSICREMOTE_INTERFACE_VERSION001",
  "SteamNetworking001",
  "SteamNetworking002",
  "SteamNetworking003",
  "SteamNetworking004",
  "SteamNetworking005",
  "SteamNetworking006",
  "SteamNetworkingMessages002",
  "SteamNetworkingSockets002",
  "SteamNetworkingSockets003",
  "SteamNetworkingSockets004",
  "SteamNetworkingSockets005",
  "SteamNetworkingSockets006",
  "SteamNetworkingSockets008",
  "SteamNetworkingSockets009",
  "SteamNetworkingSockets010",
  "SteamNetworkingSockets011",
  "SteamNetworkingSockets012",
  "SteamNetworkingSocketsSerialized001",
  "SteamNetworkingSocketsSerialized002",
  "SteamNetworkingSocketsSerialized003",
  "SteamNetworkingSocketsSerialized004",
  "SteamNetworkingSocketsSerialized005",
  "SteamNetworkingUtils001",
  "SteamNetworkingUtils002",
  "SteamNetworkingUtils003",
  "SteamNetworkingUtils004",
  "STEAMPARENTALSETTINGS_INTERFACE_VERSION001",
  "SteamParties001",
  "SteamParties002",
  "STEAMREMOTEPLAY_INTERFACE_VERSION001",
  "STEAMREMOTEPLAY_INTERFACE_VERSION002",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION001",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION002",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION003",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION004",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION005",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION006",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION007",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION008",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION009",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION010",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION011",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION012",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION013",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION014",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION015",
  "STEAMREMOTESTORAGE_INTERFACE_VERSION016",
  "STEAMSCREENSHOTS_INTERFACE_VERSION001",
  "STEAMSCREENSHOTS_INTERFACE_VERSION002",
  "STEAMSCREENSHOTS_INTERFACE_VERSION003",
  "SteamStreamLauncher001",
  "STEAMTIMELINE_INTERFACE_V001",
  "STEAMTIMELINE_INTERFACE_V002",
  "STEAMTIMELINE_INTERFACE_V003",
  "STEAMTIMELINE_INTERFACE_V004",
  "STEAMTV_INTERFACE_V001", // removed since sdk v1.61
  "STEAMTV_INTERFACE_V002", // removed since sdk v1.61
  "STEAMUGC_INTERFACE_VERSION001",
  "STEAMUGC_INTERFACE_VERSION002",
  "STEAMUGC_INTERFACE_VERSION003",
  "STEAMUGC_INTERFACE_VERSION004",
  "STEAMUGC_INTERFACE_VERSION005",
  "STEAMUGC_INTERFACE_VERSION006",
  "STEAMUGC_INTERFACE_VERSION007",
  "STEAMUGC_INTERFACE_VERSION008",
  "STEAMUGC_INTERFACE_VERSION009",
  "STEAMUGC_INTERFACE_VERSION010",
  "STEAMUGC_INTERFACE_VERSION011",
  "STEAMUGC_INTERFACE_VERSION012",
  "STEAMUGC_INTERFACE_VERSION013",
  "STEAMUGC_INTERFACE_VERSION014",
  "STEAMUGC_INTERFACE_VERSION015",
  "STEAMUGC_INTERFACE_VERSION016",
  "STEAMUGC_INTERFACE_VERSION017",
  "STEAMUGC_INTERFACE_VERSION018",
  "STEAMUGC_INTERFACE_VERSION019",
  "STEAMUGC_INTERFACE_VERSION020",
  "STEAMUNIFIEDMESSAGES_INTERFACE_VERSION001",
  "SteamUser004",
  "SteamUser005",
  "SteamUser006",
  "SteamUser007",
  "SteamUser008",
  "SteamUser009",
  "SteamUser010",
  "SteamUser011",
  "SteamUser012",
  "SteamUser013",
  "SteamUser014",
  "SteamUser015",
  "SteamUser016",
  "SteamUser017",
  "SteamUser018",
  "SteamUser019",
  "SteamUser020",
  "SteamUser021",
  "SteamUser022",
  "SteamUser023",
  "STEAMUSERSTATS_INTERFACE_VERSION001",
  "STEAMUSERSTATS_INTERFACE_VERSION002",
  "STEAMUSERSTATS_INTERFACE_VERSION003",
  "STEAMUSERSTATS_INTERFACE_VERSION004",
  "STEAMUSERSTATS_INTERFACE_VERSION005",
  "STEAMUSERSTATS_INTERFACE_VERSION006",
  "STEAMUSERSTATS_INTERFACE_VERSION007",
  "STEAMUSERSTATS_INTERFACE_VERSION008",
  "STEAMUSERSTATS_INTERFACE_VERSION009",
  "STEAMUSERSTATS_INTERFACE_VERSION010",
  "STEAMUSERSTATS_INTERFACE_VERSION011",
  "STEAMUSERSTATS_INTERFACE_VERSION012",
  "STEAMUSERSTATS_INTERFACE_VERSION013",
  "SteamUtils001",
  "SteamUtils002",
  "SteamUtils003",
  "SteamUtils004",
  "SteamUtils005",
  "SteamUtils006",
  "SteamUtils007",
  "SteamUtils008",
  "SteamUtils009",
  "SteamUtils010",
  "STEAMVIDEO_INTERFACE_V001",
  "STEAMVIDEO_INTERFACE_V002",
  "STEAMVIDEO_INTERFACE_V003",
  "STEAMVIDEO_INTERFACE_V004",
  "STEAMVIDEO_INTERFACE_V005",
  "STEAMVIDEO_INTERFACE_V006",
  "STEAMVIDEO_INTERFACE_V007",
};
